/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.bookshop.managedBean;

import com.bookshop.entity.Book;
import com.bookshop.service.BookService;
import com.bookshop.util.NavigationHelper;
import com.bookshop.webService.CallWebService;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ejb.EJB;
import javax.faces.event.ActionEvent;

/**
 *
 * @author Thibault
 */
public class BookManagedBean {

    @EJB
    private BookService bookService;
    private Book book = new Book();
    private int catID = -1;    
    private String isbn;
    
    private CallWebService wsStock = new CallWebService();
    
    /**
     * Creates a new instance of BookManagedBean
     */
    public BookManagedBean() {
    }
    
    public void getBookFromISBN(ActionEvent ae) {
        try {
            this.isbn = ae.getComponent().getAttributes().get("ISBN").toString();
            this.book = bookService.getBookByISBN(this.isbn);
            
            /* Demande de retour au webservice sur l'état du stock pour l'isbn 
             * passé en paramètre
             */
            this.getWsStock().getStockBookByISBN(this.isbn);
            
            
            NavigationHelper.forward("/book.xhtml");
            
        } catch (Exception ex) {
            Logger.getLogger(BookManagedBean.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
    /**
     * Récupère l'état du stock de l'instance de livre courante, information qui
     * a été précédemment renseignée à partir d'un WebService
     * @return : L'état du stock sous forme de chaîne de caractères
     */
    public String getStockFromWebService(ActionEvent ae) {
        String isbn = ae.getComponent().getAttributes().get("ISBN").toString();
        String stockToReturn = this.getWsStock().getStockState(isbn);
        System.out.println("[bookManagedBean] Etat du stock : " + stockToReturn);
        return stockToReturn;
        
    }
    
    public Book getBook() {
        return book;
    }

    public void setBook(Book book) {
        this.book = book;
    }
    
    public CallWebService getWsStock() {
        return this.wsStock;
    }
    public void setWsStock(CallWebService newWsStock) {
        this.wsStock = newWsStock;
    }
    
    
}
